package com.utils.collection;

import java.util.Comparator;
import java.util.TreeSet;

/**
 * Created by apple on 2017/4/22.
 */
public class TreeSetTest {
    private int age;

    public TreeSetTest(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "TreeSetTest{" +
                "age=" + age +
                '}';
    }

    public static void main1(String[] args) {
        TreeSet nums = new TreeSet();
        //向TreeSet中添加四个Integer对象
        nums.add(5);
        nums.add(2);
        nums.add(10);
        nums.add(-9);

        //输出集合元素，看到集合元素已经处于排序状态
        System.out.println(nums);

        //输出集合里的第一个元素
        System.out.println(nums.first());

        //输出集合里的最后一个元素
        System.out.println(nums.last());

        //返回小于4的子集，不包含4
        System.out.println(nums.headSet(4));

        //返回大于5的子集，如果Set中包含5，子集中还包含5
        System.out.println(nums.tailSet(5));

        //返回大于等于-3，小于4的子集。
        System.out.println(nums.subSet(-3, 4));
    }

    public static void main(String[] args) {
        TreeSet ts = new TreeSet(new Comparator() {
            //根据M对象的age属性来决定大小
            public int compare(Object o1, Object o2) {
                TreeSetTest m1 = (TreeSetTest) o1;
                TreeSetTest m2 = (TreeSetTest) o2;
                return m1.age > m2.age ? -1
                        : m1.age < m2.age ? 1 : 0;
            }
        });
        ts.add(new TreeSetTest(5));
        ts.add(new TreeSetTest(-3));
        ts.add(new TreeSetTest(9));
        System.out.println(ts);
    }
}
